package main

import (
	"fmt"
	"os"
	"text/template"
)

// html/template, text/template
func main() {

	// {{.}}中的点表示当前对象。当我们传入一个结构体对象时，我们可以根据.来访问结构体的对应字段。
	text := `
Hello {{.Name}}, Age is {{.Age}}
{{/* 注释会被忽略掉，
可以多行 */}}last line
成年: {{if ge .Age 18}}已成年{{else}}未成年{{end}}
爱好: {{range $i, $v :=.Hobby}}{{$v}}{{end}}
爱好: {{range .Hobby}}{{.}}{{end}}
`
	tmpl, _ := template.New("").Parse(text)
	p := &MyPerson{
		Name:  "张三",
		Age:   18,
		Hobby: []string{"写代码", "骑单车", "看抖音"},
	}

	err := tmpl.Execute(os.Stdout, p)
	if err != nil {
		fmt.Println(err)
	}
}

type MyPerson struct {
	Name  string
	Age   int
	Hobby []string
}
